<?php
	
//Klass som hanterar inloggningen.

class LoginHandler{	
	
	private $loggedIn = 'loggedIn';
	
	//Kontrollerar om användaren är inloggad
	public function IsLoggedIn(){
		return isset($_SESSION[$this->loggedIn]);		
	}
	
	public function DoLogin($username, $password){
		switch ($username){
			case 'Leonard':
				if($password == 'Nimoy'){
				break;
				}
				
			case 'Spock':
				if($password == 'Mr'){					
				break;
				}
				
			case 'Picard':
				if($password == 'Captain'){
				break;
				}
				
			default:
				return false;
		}	
		// Sätter sessionen till true, dvs man är inloggad
		$_SESSION[$this->loggedIn] = true;	
		return true;
	}
	
	//Kontrollerar om det finns en session och nollställer isåfall sessionen
	public function DoLogout(){
		if(isset($_SESSION[$this->loggedIn])){
			unset($_SESSION[$this->loggedIn]);
		}
	}
	
	// Testfunktioner för sidan
	public function Test(){
		
		// Börja med att försätta oss i utloggat tillstånd
		$this->DoLogout();
		
		// Test av isloggedin
		if($this->IsLoggedIn()){
			echo "Fel i isloggedin-test, bör vara utloggad";
			return false;
		}
		
		// Test av DoLogin fel uppgifter
		if($this->DoLogin('Fel', 'Uppgifter') == true){
			echo "Fel i DoLogin";
			return false;
		}
		
		// Test av DoLogin rätt uppgifter
		if($this->DoLogin('Leonard', 'Nimoy') == false){
			echo "Fel i DoLogin med rätt uppgifter";
			return false;
		}
		
		// Test av islogged in
		if($this->IsLoggedIn() == false){
			echo "Fel i isloggedin-test, bör vara inloggad";
			return false;
		}
		
		//Testa att logga ut
		$this->DoLogout();
		
		//Testar att logga in med rätt användarnamn och fel lösenord
		if($this->DoLogin('Leonard', 'fel lösen') == true){
			echo "fel i inloggningslogik";
			return false;
		}
		
		return true;
	}
	
}
